home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
thinkref
/
archive
/
THINKPascal4.0.2Update.sea
/
THINK Pascal 4.0.2 Update
/
About THINK Pascal 4.0.2
next >
Wrap
Text File
|
1992-11-18
|
13KB
|
325 lines
About THINK Pascal 4.0.2
=======================
Copyright © 1992 Symantec Corporation. All rights reserved.
November 18, 1992
Font: Geneva 12
INTRODUCTION
=============
THINK Pascal 4.0.2 corrects some problems with debugging programs on a
Macintosh Quadra and corrects some other problems in THINK Pascal 4.0. It
also contains a new version of SANE.p that corrects some of its interfaces
and contains new versions of Runtime.Lib, TCLRuntime.Lib, and
MARuntime.Lib that you can use in a project you’re profiling.
This document has three more sections:
• UPDATING THINK PASCAL tells you how to run
“THINK Pascal -> 4.0.2.sea” and “Misc Updates.sea” to update
your copy of THINK Pascal.
• WHAT THIS UPDATE FIXES lists the most important bugs that
this update fixes.
• LAST MINUTE CHANGES lists some last minute changes and
corrections to the THINK Pascal User Manual. This section
contains much of the information in the READ ME file on your
THINK Pascal 4.0 disk, in addition to some more recent
information.
UPDATING THINK PASCAL
=======================
This update transforms your existing THINK Pascal 4.0 application to THINK
Pascal 4.0.2. You will run the patch program “THINK Pascal => 4.0.2” and
then replace some runtime libraries.
1. Make sure that you have your original THINK Pascal
application. You won't need it for this update, but you
should make sure that you have a backup in case the
update fails. Do not patch your original master disk.
••••
NOTE
••••
Do not patch your original master disk. If you have
problems installing or using this patch, you’ll need it.
2. Double-click THINK Pascal -> 4.0.2.sea.
3. A standard file dialog appears. Move to your Development folder
and click Extract. The patch program “THINK Pascal => 4.0.2”
is placed in your development folder.
4. Double-click on the patch program “THINK Pascal => 4.0.2”.
Click on the Update THINK Pascal button.
5. Find the THINK Pascal application in your THINK
Pascal Folder. Select it and click on the Patch button.
6. If the patch was successful, you'll see a confirmation.
7. Delete “THINK Pascal => 4.0.2” from your hard disk.
8. Double-click on the program “Misc Updates.sea.”
9. A standard file dialog appears. Move to your Development folder
and click Extract.
10. The archive decompresses its files and places them on your hard
disk. It places all the files, except UMemory.p, into the proper
folder. Its progress is shown in a a dialog. The archive quits
when it’s done.
11. If you’re a MacApp user, replace your old copy of UMemory.p with
the copy that the archive placed in your THINK Pascal 4.0 folder.
Your old copy of UMemory.p should be in your THINK MacApp folder.
If you don’t use MacApp, you may delete UMemory.p.
12. The next time you open a project, THINK Pascal asks if you want
to convert the project, overwriting the existing version. Click
Yes.
WHAT THIS UPDATE FIXES
=======================
THINK Pascal 4.0.2 is a minor upgrade to THINK Pascal 4.0 that lets you
use THINK Pascal on a Macintosh Quadra and fixes some bugs.
MiscUpdates.sea replaces these files:
• Runtime.Lib in your THINK Pascal 4.0 Folder
• Project Utilties in your THINK Pascal 4.0 Folder
• DA Shell in your THINK Pascal 4.0 Folder
• TCLRuntime.Lib in your Libraries folder
• µRuntime.Lib in your Libraries folder
• RSRCRuntime.Lib in your Libraries folder
• DRVRRuntime.Lib in your Libraries folder
• µRuntime.Lib in your Libraries folder
• SANE.p in your Interfaces folder
• MARuntime.Lib in your Libraries folder
• UFailure.a.o in THINK MacApp : Libraries : Debug
• UFailure.a.o in THINK MacApp : Libraries : Non-Debug
• UMemory.p in THINK MacApp
MiscUpdates.sea adds these files:
• About Failure Handlers
• UFailure.a
The rest of this section describes the most significant bugs that THINK
Pascal 4.0.2 fixes. Fixes that were not in the THINK Pascal 4.0.1 patch
are marked with double bullets.
•• The MacApp Special Failure handlers now work correctly. (Please refer
the file “About Failure Handlers”)
•• Calling Exit() in a procedure far up in the call chain works correctly.
•• RememberA4() works correctly with multi-segment code resources.
•• Changing the screen setup doesn’t crash THINK Pascal.
•• You can choose Run Options… when no project is open.
•• MacApp projects work correctly on 68040 machines.
•• For MacApp users there is a new UMemory.p that turns off debugging for
routines that MacApp’s LoadSeg() patches call.
•• The compiler generates correct code for expressions with a 32-bit
multiply and a constant zero.
•• The DA Shell is compatible with INITs that modify the Apple menu.
•• When the 32-bit Addressing option is on, the Apple menu appears
correctly in the menu bar.
•• If you choose Undo or Redo while the Observe window is frontmost,
its contents are correctly drawn.
•• When you’re running System 7 and you open a file by double-clicking it,
the default directory is the one containing that file.
•• Calling GetMenu() with a menu ID that doen't exist in your project no
longer returns one of THINK Pascal’s menus.
•• When the main segment of a multi-segment code resource is too large,
THINK Pascal now displays a link error.
•• Double-clicking on words in the Compiler Options dialog selects the
words correctly.
•• Odd color effects are no longer displayed when you click and tab in the
Observe window.
• The new versions of Runtime.Lib, TCLRuntime.Lib, MARuntime.Lib, and
µRuntime.Lid let you reset a program that you are profiling.
• Project Utilities works correctly when you choose Back Up.
• SANE.p has all correct function interfaces.
• Multi-segment code resources and drivers that move in memory after
loading or unloading a segment work correctly.
• When running in 32-bit mode, the LightsBug heap display is correct.
• When you use Undo, Cut, or Paste to edit source code for a program while
it’s running, THINK Pascal displays an alert and doesn’t perform the edit if
you click No.
• Tabs always look the same on the screen and printed copy.
• The Command-key equivalent for Entire Document in the Save As...
dialog is now Command-E and doesn’t conflict with the command-key
equivalent for the Desktop button.
• Printing the Text window in draft mode on an ImageWriter works
correctly.
• THINK Pascal generates correct code for all assignment statements
with a short-circuit Boolean expression on the right-hand side.
• THINK Pascal is now compatible with the breakpointing scheme used
in recent versions of MacsBug.
• On a Macintosh Quadra, you can now call _MaxApplZone while running in
the THINK Pascal environment.
• Your project can contain more than 127 segments.
• THINK Pascal correctly places a stop sign in your file after it displays
an alert.
• The Use Second Screen option works correctly even if the main screen
isn’t the first device in the device list.
• The “Custom Header” option for code resources works correctly.
LAST MINUTE CHANGES
====================
• This disk contains the file “Installing THINK Pascal,” which tells you how
to set up THINK Pascal on your hard drive. It duplicates Chapter 2,
“Installing THINK Pascal,” in the THINK Pascal User Manual. It’s included
on disk so the people who never read manuals can read it. If the document
contradicts anything in the manual, follow the document. The differences
may reflect minor changes in the layout of the disks.
Editing
-------
• The Clean Up Windows command described on page 78 is not in THINK
Pascal 4.0.
Using Predefined Routines
------------------------
• The declaration for the routine DeviceLoop that’s built into THINK Pascal
is incorrect. To use the routine, be sure to include this declaration in any
file that calls it:
PROCEDURE DeviceLoop( drawingRgn: RgnHandle;
drawingProc: DeviceLoopDrawingProcPtr;
userData: LongInt; flags: LongInt );
INLINE $ABCA;
• On page 142, the list of built-in interfaces is incorrect. These files are
NOT built into THINK Pascal:
MacPrint.p MemTypes.p OSIntf.p
PackIntf.p PaletteMgr.p PickerIntf.p
QDOffscreen.p SCSIIntf.p ToolIntf.p
VideoIntf.p
QDOffscreen.p is included with THINK Pascal. You can use its functions
if you include the file in your project and in your uses statment. The
others are not included in THINK Pascal because they duplicate other
interfaces or because they are no longer used.
• On pages 142 and 143, Sounds.p is in both lists of interfaces: those that
are built-in and those that aren’t. There are in fact two versions of
Sounds.p. The interfaces are for the Source Manager routines in Inside
Macintosh V and VI are NOT built-in. You can use the functions if you
include the file in your project and your uses statment The interfaces for
the Sound Manager routines in Inside Macintosh I to IV are built-in.
LightsBug
---------
• LightsBug does not display the correct values of these fields of a
WindowRecord: windowPic, visRgn, and clipRgn. To see their correct
values, use the Observe window.
THINK Pascal Menus
------------------
• On page 239, the first sentence in the Far Code option’s description
should read:
If this option is on, THINK Pascal lets you write large
applications: applications with a jump table as large as 256K.
Using MacApp
-------------
• You MUST use MacApp 2.0.1 or 2.0.2, and you MUST discard your current
THINK MacApp folder and convert your MacApp sources again with the
materials supplied with THINK Pascal 4.0. For more information, see
the Object-Oriented Programming manual, Appendix A, “MacApp and
THINK Pascal.”
• The “MacApp 2.0 for THINK Pascal 4.0” folder contains special versions
of the UFailure library in the “Special Failure Handlers” folder. Use these
libraries if you’re running a MacApp project under THINK Pascal, and you
need to debug your failure-handling routines. For more information, see
the file “Using the Special Failure Handlers” in the “Special Failure
Handlers” folder.
• The MacApp failure-handling routines do not work in programs running
under the THINK Pascal environment. THINK Pascal may crash if your
program invokes the failure chain. You can conditionally compile the
routine Failure in UFailure.p so that it halts your program and issues
a message, instead of invoking the failure chain.
Using Launching Utilities with THINK Pascal
----------------------------------------
Don’t use utilities that launch other applications, like ICOM’s OnCue or Now
Software’s MultiMaster, while you are running an application in the THINK
Pascal environment.
Using SetupA4 and RestoreA4
---------------------------
If you write multi-segment drivers, desk accessories, or code resources,
make sure that any routine that needs to call SetupA4 and RestoreA4 is in
the same segment as RSRCRuntime.Lib or DRVRRuntime.Lib.
Using Object Pascal in Multi-Segement Code Resources
--------------------------------------------------
If you're using THINK Pascal 4.0 to write code resources with Object Pascal,
there are some important details that you should note:
1. In the By Segment view of the Project Window, the <<%_SelProcs>> and
<<%_MethTables>> entries should be together in a different segment
than the main program.
2. In the file that contains Main, insert the following code before the
main procedure:
{$S %_MethTables}
{$Push}
{$N-}
procedure LoadMethTables;
begin
end;
{$Pop}
{$S}
3. The beginning of your Main procedure should look something like this:
procedure Main {any optional arguments};
begin
RememberA4;
SetupA4;
LoadMethTables;
{ rest of Main's code }
RestoreA4;
end;
The important thing here is that you must call LoadMethTables (a routine
in the %_MethTables segment), before you use any object-related routines
(including New). Otherwise, objects won’t work.